<?php
/**
 *
 * @tutorial: Envio de mensajes (sms o mail) 
 */
   
class Mensaje {
    private $id;
    private $remitente;
    private $destinatario;
    private $tipo;
    private $asunto;
    private $contenido;
    private $contenido_html;
    private $contenido_text;
    private $fecha;
    private $SMTPDebug;
    
    function __construct($id="", $remitente="", $destinatario="", $tipo="email", $asunto="", $contenido="",$contenido_html="", $contenido_text="", $fecha="",$SMTPDebug=0) {
        $this->id = $id;
        $this->remitente = $remitente;
        $this->destinatario = $destinatario;
        $this->tipo = $tipo;
        $this->asunto = $asunto;
        $this->contenido = $contenido;
        $this->contenido_html = $contenido_html;
        $this->contenido_text = $contenido_text;
        $this->SMTPDebug = $SMTPDebug;
        $this->fecha = date("Y-m-d H:i:s");
    }
    
    public function getId() {
        return $this->id;
    }

    public function setId($id) {
        $this->id = $id;
    }

    public function getRemitente() {
        return $this->remitente;
    }

    public function setRemitente($remitente) {
        $this->remitente = $remitente;
    }

    public function getDestinatario() {
        return $this->destinatario;
    }

    public function setDestinatario($destinatario) {
        $this->destinatario = $destinatario;
    }

    public function getTipo() {
        return $this->tipo;
    }

    public function setTipo($tipo) {
        switch ($tipo) {
            case "email":
                break;
            case "":
                break;
            default:
                echo "Error: El tipo de mensaje no es válido. Los tipos validos son email";
                return false;
                
                break;
        }
        
        $this->tipo = $tipo;
    }

    public function getAsunto() {
        return $this->asunto;
    }

    public function setAsunto($asunto) {
        $this->asunto = $asunto;
    }

    public function getContenido() {
        return $this->contenido;
    }

    public function setContenido($contenido) {
        $this->contenido = $contenido;
    }
    
    public function getContenido_text() {
        return $this->contenido_text;
    }

    public function setContenido_text($contenido_text) {
        $this->contenido_text = $contenido_text;
    }

        
    public function getContenido_html() {
        return $this->contenido_html;
    }

    public function setContenido_html($contenido_html) {
        $this->contenido_html = $contenido_html;
    }

    public function getFecha() {
        return $this->fecha;
    }

    public function setFecha($fecha) {
        $this->fecha = $fecha;
    }
    
    public function getSMTPDebug() {
        return $this->SMTPDebug;
    }

    public function setSMTPDebug($SMTPDebug) {
        $this->SMTPDebug = $SMTPDebug;
    }

        
    /**Funcion de envio**/
    public function enviar(){
        $resultado = false;
        
        switch ($this->tipo) {
           
            case "email":
                if (!class_exists("Config"))        include_once 'class.Config.php';
                $cfg = new config();
                
                require_once $cfg->pathPHPMailer."/class.phpmailer.php";
                
                $mail = new PHPMailer();
                $mail->IsSMTP(); // telling the class to use SMTP

                try {
                        if ($this->SMTPDebug == "") $mail->SMTPDebug  = 0;    // enables SMTP debug information (for testing)
                        else                        $mail->SMTPDebug = $this->SMTPDebug;
                        
                        $mail->Host       = "ssl://smtp.gmail.com"; // SMTP server
                        $mail->SMTPAuth   = true;                  // enable SMTP authentication
                        $mail->Port       = 465;                    // set the SMTP port for the GMAIL server
                        $mail->Username   = "masakretest@gmail.com"; // SMTP account username
                        $mail->Password   = "masakretest123";        // SMTP account password
                        $mail->IsHTML(true);
                        $mail->AddCustomHeader("charset:utf-8");
                        $mail->AddReplyTo('admin@electrolinerasonline.com', 'admin');
                                               
                        $mail->AddAddress($this->destinatario);
       
                        $mail->Subject = $this->asunto;

                        $mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional - MsgHTML will create an alternate automatically
                        
                        
                        if ($this->remitente == "") $mail->From = "admin@electrolinerasonline.com";
                        
                        //Si hay contenido establecido, lo metemos
                        if ($this->contenido != "") $mail->Body  = $this->contenido;
                        
                        //Si hay contenido HTMl lo metemos y le decimos que es contenido HTML,
                        if ($this->contenido_html != "") {
                            $mail->Body = $this->contenido_html;
                            $mail->AltBody = utf8_encode($alt_body);
                        }
                        
                        if ($mail->Send()) $resultado = true;
                        else               $resultado = false;



                } catch (phpmailerException $e) {
                    echo $e->errorMessage(); //Pretty error messages from PHPMailer

                } catch (Exception $e) {
                    echo $e->getMessage(); //Boring error messages from anything else!

                }
                break;

            default:
                break;
        }
        
        return $resultado;
    }

}
?>
